home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / lisp / eulisp / feel0_89.lha / Feel / Boot / vector.em < prev   
Encoding:
Text File  |  1993-06-30  |  1.2 KB  |  59 lines

  1. ;; Eulisp Module
  2. ;; Author: pab
  3. ;; File: vector.em
  4. ;; Date: Tue Jun 29 22:07:58 1993
  5. ;;
  6. ;; Project:
  7. ;; Description: 
  8. ;;
  9.  
  10. (defmodule vector
  11.   (gens
  12.    defs
  13.    extras0
  14.    init
  15.    macros0
  16.    )
  17.   ()
  18.  
  19.  
  20. ;;; ----------
  21. ;;; p121
  22. ;;; default methods for initial-state, next-state, current-element and
  23. ;;; (setter current-element) work for <vector>
  24.  
  25.   (defmethod element ((v <vector>) (s <fixint>)) (vector-ref v s))
  26.  
  27.   (defmethod (setter element) ((c <vector>) (s <fixint>) v)
  28.     ((setter vector-ref) c s v))
  29.  
  30.   (defmethod current-key ((c <vector>) (s <fixint>)) s)
  31.  
  32.   (defmethod clone ((x <vector>))
  33.     (make <vector> 'size (size x)))
  34.   
  35.   (defmethod allocate ((x <vector-class>) args)
  36.     (let ((size (scan-args 'size args required-argument))
  37.       (fill (scan-args 'fill args null-argument)))
  38.     (make-vector size fill)))
  39.  
  40. ;;; ----------
  41. ;;; specified methods
  42.  
  43.   (defconstant vector make-initialized-vector)
  44.  
  45.   (export vector)
  46.  
  47. ;;; ----------
  48. ;;; additional methods
  49.  
  50.   (defmethod size ((c <vector>)) (length c))
  51.   
  52.   (defmethod allocate ((x <vector-class>) args)
  53.     (let ((size (scan-args 'size args required-argument))
  54.       (fill (scan-args 'fill args null-argument)))
  55.       (make-vector size fill)))
  56.  
  57.   ;; end module
  58.   )
  59.